c2435f0f24b877f5041a532171dabcc1692ff79b,idea/src/org/jetbrains/jet/lang/parsing/JetParsing.java,JetParsing,parseProperty,#boolean#,762

Before Change


        }

        if (at(LT)) {
            parseTypeParameterList(TokenSet.create(IDENTIFIER, EQ, COLON, SEMICOLON));
        }

        TokenSet propertyNameFollow = TokenSet.create(COLON, EQ, LBRACE, SEMICOLON);

After Change


            errorAndAdvance("Expecting 'val' or 'var'");
        }

        boolean typeParametersDeclared = at(LT) ? parseTypeParameterList(TokenSet.create(IDENTIFIER, EQ, COLON, SEMICOLON)) : false;

        TokenSet propertyNameFollow = TokenSet.create(COLON, EQ, LBRACE, SEMICOLON);

        // TODO: extract constant
        int lastDot = matchTokenStreamPredicate(new FirstBefore(
                new AtSet(DOT, SAFE_ACCESS),
                new AbstractTokenStreamPredicate() {
                    @Override
                    public boolean matching(boolean topLevel) {
                        if (topLevel && (at(EQ) || at(COLON))) return true;
                        if (topLevel && at(IDENTIFIER)) {
                            IElementType lookahead = lookahead(1);
                            return lookahead != LT && lookahead != DOT && lookahead != SAFE_ACCESS;
                        }
                        return false;
                    }
                }));

        parseReceiverType("property", propertyNameFollow, lastDot);

        if (at(COLON)) {
            advance(); // COLON
            parseTypeRef();
        }

        parseTypeConstraintsGuarded(typeParametersDeclared);

        if (local) {
            if (at(EQ)) {